package com.senlingspace.system.mapper;

import java.util.HashMap;
import java.util.List;
import java.util.Objects;

import com.senlingspace.system.domain.Project;
import com.senlingspace.system.domain.dto.ShopProjectDTO;
import org.apache.ibatis.annotations.Param;

/**
 * 项目Mapper接口
 *
 * @author SenlingSpace
 * @date 2024-06-26
 */
public interface ProjectMapper {

    /**
     * 查询门店微信小程序中商品详情数据
     *
     * @param shopId 门店id
     * @return 微信小程序中商品详情数据
     */
    ShopProjectDTO getShopAndProjectDetails(@Param("shopId") Long shopId);

    /**
     * 查询项目
     *
     * @param projectId 项目主键
     * @return 项目
     */
    public Project selectProjectByProjectId(Long projectId);

    /**
     * 查询项目列表
     *
     * @param project 项目
     * @return 项目集合
     */
    public List<Project> selectProjectList(Project project);

    /**
     * 新增项目
     *
     * @param project 项目
     * @return 结果
     */
    public int insertProject(Project project);

    /**
     * 修改项目
     *
     * @param project 项目
     * @return 结果
     */
    public int updateProject(Project project);

    /**
     * 删除项目
     *
     * @param projectId 项目主键
     * @return 结果
     */
    public int deleteProjectByProjectId(Long projectId);

    /**
     * 批量删除项目
     *
     * @param projectIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteProjectByProjectIds(Long[] projectIds);

    /**
     * 根据项目id集合查询项目信息
     *
     * @param projectIds
     * @return {@link List }<{@link Project }>
     */
    List<Project> selectProjectByIdList(@Param("projectIds") List<Long> projectIds);

}
